<?php

/*
	[UCenter] (C)2001-2099 Comsenz Inc.
	This is NOT a freeware, use is subject to license terms

	$Id: tag.php 1059 2011-03-01 07:25:09Z monkey $
*/

! defined ( 'IN_UC' ) && exit ( 'Access Denied' );

class tagcontrol extends base {

	function __construct() {

		$this->tagcontrol ();
	}

	function tagcontrol() {

		parent::__construct ();
		$this->init_input ();
		$this->load ( 'tag' );
		$this->load ( 'misc' );
	}

	function ongettag() {

		$appid = $this->input ( 'appid' );
		$tagname = $this->input ( 'tagname' );
		$nums = $this->input ( 'nums' );
		if (empty ( $tagname )) {
			return NULL;
		}
		$return = $apparray = $appadd = array ();
		
		if ($nums && is_array ( $nums )) {
			foreach ( $nums as $k => $num ) {
				$apparray [$k] = $k;
			}
		}
		
		$data = $_ENV ['tag']->get_tag_by_name ( $tagname );
		if ($data) {
			$apparraynew = array ();
			foreach ( $data as $tagdata ) {
				$row = $r = array ();
				$tmp = explode ( "\t", $tagdata ['data'] );
				$type = $tmp [0];
				array_shift ( $tmp );
				foreach ( $tmp as $tmp1 ) {
					$tmp1 != '' && $r [] = $_ENV ['misc']->string2array ( $tmp1 );
				}
				if (in_array ( $tagdata ['appid'], $apparray )) {
					if ($tagdata ['expiration'] > 0 && $this->time - $tagdata ['expiration'] > 3600) {
						$appadd [] = $tagdata ['appid'];
						$_ENV ['tag']->formatcache ( $tagdata ['appid'], $tagname );
					}
					else {
						$apparraynew [] = $tagdata ['appid'];
					}
					$datakey = array ();
					$count = 0;
					foreach ( $r as $data ) {
						$return [$tagdata ['appid']] ['data'] [] = $data;
						$return [$tagdata ['appid']] ['type'] = $type;
						$count ++;
						if ($count >= $nums [$tagdata ['appid']]) {
							break;
						}
					}
				}
			}
			$apparray = array_diff ( $apparray, $apparraynew );
		}
		else {
			foreach ( $apparray as $appid ) {
				$_ENV ['tag']->formatcache ( $appid, $tagname );
			}
		}
		if ($apparray) {
			$this->load ( 'note' );
			$_ENV ['note']->add ( 'gettag', "id=$tagname", '', $appadd, - 1 );
		}
		return $return;
	}

}

?>